<!doctype html>
<html lang="zh-cn">
  <head>
    <title>Python--面向对象(1) // JW Blog</title>
    <meta charset="utf-8" />
    <meta name="generator" content="Hugo 0.60.1" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="author" content="John Doe" />
    <meta name="description" content="" />
    <link rel="stylesheet" href="https://duyi111.gitee.io/css/main.min.f90f5edd436ec7b74ad05479a05705770306911f721193e7845948fb07fe1335.css" />

    
    <meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Python--面向对象(1)"/>
<meta name="twitter:description" content="1.面向对象编程概述  如今主流的软件开发思想有两种L一个是面向过程,另一个是面向对象. 面向过程:  需要实现一个功能的时候,看重的是开发的步骤和过程,每一个步骤都需要自己亲力亲为,需要自己编写代码(自己来做)   面向对象:  当需要实现一个功能的时候,看重的并不是过程和步骤,而是关心谁帮我做这件事(偷懒,找人帮我做)   面向对象的三大特征:封装性, 继承性, 多态性  2.定义类  类有属性,行为两个组成部分,而对象是类的具体实例, 类是&quot;抽象的&rdquo;,对象是&quot;具体的&rdquo;,类就是创建对象的模板 格式 class 类名(object): pass # object是所有类的最顶级父类  注意:  程序员定义的类的类名命名规则  遵循大驼峰      3.创建对象  格式 对象名 = 类名()  注意:  一个类可以创建无数个对象 无数个对象其地址是不同的,需要分别开辟空间,得以把数据单独保存起来    4.添加和获取对象的属性  添加属性 对象名.属性名 = 数值  获取属性 对象名.属性名   5.在方法内通过self获取对象属性  方法的定义 class 类名(object): def 方法名(self): pass  方法的调用 对象名."/>

    <meta property="og:title" content="Python--面向对象(1)" />
<meta property="og:description" content="1.面向对象编程概述  如今主流的软件开发思想有两种L一个是面向过程,另一个是面向对象. 面向过程:  需要实现一个功能的时候,看重的是开发的步骤和过程,每一个步骤都需要自己亲力亲为,需要自己编写代码(自己来做)   面向对象:  当需要实现一个功能的时候,看重的并不是过程和步骤,而是关心谁帮我做这件事(偷懒,找人帮我做)   面向对象的三大特征:封装性, 继承性, 多态性  2.定义类  类有属性,行为两个组成部分,而对象是类的具体实例, 类是&quot;抽象的&rdquo;,对象是&quot;具体的&rdquo;,类就是创建对象的模板 格式 class 类名(object): pass # object是所有类的最顶级父类  注意:  程序员定义的类的类名命名规则  遵循大驼峰      3.创建对象  格式 对象名 = 类名()  注意:  一个类可以创建无数个对象 无数个对象其地址是不同的,需要分别开辟空间,得以把数据单独保存起来    4.添加和获取对象的属性  添加属性 对象名.属性名 = 数值  获取属性 对象名.属性名   5.在方法内通过self获取对象属性  方法的定义 class 类名(object): def 方法名(self): pass  方法的调用 对象名." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://duyi111.gitee.io/post/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A11/" />
<meta property="article:published_time" content="2020-01-11T21:57:00+08:00" />
<meta property="article:modified_time" content="2020-01-11T21:57:00+08:00" />


  </head>
  <body>
    <header class="app-header">
      <a href="https://duyi111.gitee.io/"><img class="app-header-avatar" src="/avatar.jpg" alt="John Doe" /></a>
      <h1>JW Blog</h1>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vehicula turpis sit amet elit pretium.</p>
      <div class="app-header-social">
        
      </div>
    </header>
    <main class="app-container">
      
  <article class="post">
    <header class="post-header">
      <h1 class ="post-title">Python--面向对象(1)</h1>
      <div class="post-meta">
        <div>
          <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
  <title>calendar</title>
  <rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
          Jan 11, 2020
        </div>
        <div>
          <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-clock">
  <title>clock</title>
  <circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline>
</svg>
          1 min read
        </div></div>
    </header>
    <div class="post-content">
      <h2 id="1">1.面向对象编程概述</h2>
<ul>
<li>如今主流的软件开发思想有两种L一个是<strong>面向过程</strong>,另一个是<strong>面向对象</strong>.</li>
<li>面向过程:
<ul>
<li>需要实现一个功能的时候,看重的是开发的步骤和过程,每一个步骤都需要自己亲力亲为,需要自己编写代码(自己来做)</li>
</ul>
</li>
<li>面向对象:
<ul>
<li>当需要实现一个功能的时候,看重的并不是过程和步骤,而是关心谁帮我做这件事(偷懒,找人帮我做)</li>
</ul>
</li>
<li>面向对象的三大特征:封装性, 继承性, 多态性</li>
</ul>
<h2 id="2">2.定义类</h2>
<ul>
<li><strong>类</strong>有属性,行为两个组成部分,而<strong>对象</strong>是类的具体实例, 类是&quot;抽象的&rdquo;,对象是&quot;具体的&rdquo;,类就是创建对象的模板</li>
<li>格式
<pre><code>class 类名(object):
    pass
# object是所有类的最顶级父类
</code></pre></li>
<li>注意:
<ul>
<li>程序员定义的类的类名命名规则
<ul>
<li>遵循大驼峰</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="3">3.创建对象</h2>
<ul>
<li>格式
<pre><code>对象名 = 类名()
</code></pre></li>
<li>注意:
<ul>
<li>一个类可以创建无数个对象</li>
<li>无数个对象其地址是不同的,需要分别开辟空间,得以把数据单独保存起来</li>
</ul>
</li>
</ul>
<h2 id="4">4.添加和获取对象的属性</h2>
<ul>
<li>添加属性
<pre><code>对象名.属性名 = 数值
</code></pre></li>
<li>获取属性
<pre><code>对象名.属性名
</code></pre></li>
</ul>
<h2 id="5self">5.在方法内通过self获取对象属性</h2>
<ul>
<li>方法的定义
<pre><code>class 类名(object):
    def 方法名(self):
        pass
</code></pre></li>
<li>方法的调用
<pre><code>对象名.方法名()
</code></pre></li>
<li>注意:
<ul>
<li>实例方法或者对象方法中的self是谁?
<ul>
<li>哪个对象调用了这个方法,self就是哪个对象</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="6-init">6. __init__()方法</h2>
<ul>
<li>作用: 给对象添加属性并赋值</li>
<li>什么时候被调用
<ul>
<li>监听通过类创建对象成功后会被python调用</li>
</ul>
</li>
<li>注意:
<ul>
<li>魔法方法:
<ul>
<li>以两个下划线开头并以两个下划线结尾的方法</li>
</ul>
</li>
<li>魔法方法什么时候执行:
<ul>
<li>会在特殊的情况下被python调用</li>
</ul>
</li>
</ul>
</li>
<li>init方法的使用场景
<ul>
<li>通过一个类创建无数个对象,且无数个对象有相同的属性名而且属性值也相同</li>
</ul>
</li>
</ul>
<h2 id="7init">7.有参数的__init__()方法</h2>
<ul>
<li>有参数的init方法的使用场景
<ul>
<li>通过一个类创建无数个对象,且无数个对象的属性名相同,但是属性值不同</li>
</ul>
</li>
</ul>
<h2 id="8str">8.__str__()方法</h2>
<ul>
<li>作用: 追踪对象的属性值变化</li>
<li>str方法什么时候被执行?
<ul>
<li>监听一个对象使用print进行输出的时候</li>
</ul>
</li>
<li>注意
<ul>
<li>str方法除了self以外没有其他的形参</li>
<li>str方法必须有返回值,而且必须是字符串类型</li>
</ul>
</li>
</ul>
<h2 id="9del">9.__del__()方法</h2>
<ul>
<li>作用: 监听对象被销毁后,需要做事情,可以再del方法中完成</li>
<li>del方法什么时候被执行?
<ul>
<li>监听到对象的引用计数为0的时候,才会执行del方法</li>
</ul>
</li>
<li>注意:
<ul>
<li>是否只要执行了<code>del 对象名</code>就会执行del方法?</li>
<li>监听到对象的引用计数为0的时候,才会执行del方法</li>
</ul>
</li>
</ul>

    </div>
    <div class="post-footer">
      
    </div>
  </article>

    </main>
  </body>
</html>
